1. Field of the Invention
The present invention relates to peer-to-peer networks, and more specifically to manipulating and querying arbitrary resources of peers in the peer-to-peer network.
2. Description of the Related Art
Currently, a client can access resources through a server over a network. For example, FIG. 1 is a prior art diagram illustrating a client 140 accessing resources over a network 130. A server 110 interfaced by a proxy server 120 provides access to multiple resources of the server 110. The resources can include a central processing unit (CPU) 112, a memory 114, a disk 116, and a printer 118. Typically, the client 140 requests access to a resource, such as the printer 118 and the proxy server 120 either grants or disallows access. It should be appreciated that in this type of system the available resources are pre-set as being available to the client. That is, the client does not have to search for available resources that may be desired.
In a decentralized network, e.g., a peer-to-peer network, as the number of peers in the network become large, each peer is incapable of notifying each of the other peers of its available resources because of the large number of peers. One barrier for a system having a large number of peers, i.e., hundreds of thousands of peers, is the bandwidth required for handling the publishing of available resources between each of the peers. One technique to address the publishing of resources has been to allow searching for an exact resource and not a range of resources. This type of search is limiting as an exact amount is not the preferable search format, i.e., it is preferable to search for a resource having a minimum or maximum percentage of the resource available. In addition, as resource availability tends to constantly change, the update rate and the bandwidth consumed by the constant updates of the exact available amount of the resource become excessive.
Accordingly, a method and an apparatus for enabling notification of available resources in a deterministic manner that does not impact performance for a decentralized network are needed.